diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/assets/frontdoor.svg b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/assets/frontdoor.svg index 2806bba823df..45540f6ae701 100644 --- a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/assets/frontdoor.svg +++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/assets/frontdoor.svg @@ -4,665 +4,680 @@ - - + + G - + A0 - -Frontdoor - --properties:FrontdoorProperties + +FrontDoor + +-properties:FrontDoorProperties A2 - -FrontdoorProperties - --resourceState:ResourceState --provisioningState:string --cname:string + +FrontDoorProperties + +-resourceState:ResourceState +-provisioningState:string +-cname:string A0->A2 - - + + A1 - -FrontdoorUpdateParameters - --friendlyName:string --routingRules:Array<RoutingRule> --loadBalancingSettings:Array<LoadBalancingSettingsModel> --healthProbeSettings:Array<HealthProbeSettingsModel> --backendPools:Array<BackendPool> --frontendEndpoints:Array<FrontendEndpoint> --enabledState:string + +FrontDoorUpdateParameters + +-friendlyName:string +-routingRules:Array<RoutingRule> +-loadBalancingSettings:Array<LoadBalancingSettingsModel> +-healthProbeSettings:Array<HealthProbeSettingsModel> +-backendPools:Array<BackendPool> +-frontendEndpoints:Array<FrontendEndpoint> +-enabledState:string - + A1->A2 - - -allOf + + +allOf A5 - -RoutingRule - --properties:RoutingRuleProperties --name:string --type:string + +RoutingRule + +-properties:RoutingRuleProperties +-name:string +-type:string A1->A5 - - + + - - -A10 - -LoadBalancingSettingsModel - --properties:LoadBalancingSettingsProperties --name:string --type:string - - + + +A11 + +LoadBalancingSettingsModel + +-properties:LoadBalancingSettingsProperties +-name:string +-type:string + + -A1->A10 - - +A1->A11 + + - - -A14 - -HealthProbeSettingsModel - --properties:HealthProbeSettingsProperties --name:string --type:string - - + + +A15 + +HealthProbeSettingsModel + +-properties:HealthProbeSettingsProperties +-name:string +-type:string + + -A1->A14 - - +A1->A15 + + - - -A18 - -BackendPool - --properties:BackendPoolProperties --name:string --type:string - - + + +A19 + +BackendPool + +-properties:BackendPoolProperties +-name:string +-type:string + + -A1->A18 - - +A1->A19 + + - - -A26 - -FrontendEndpoint - --properties:FrontendEndpointProperties --name:string --type:string - - + + +A27 + +FrontendEndpoint + +-properties:FrontendEndpointProperties +-name:string +-type:string + + -A1->A26 - - +A1->A27 + + - - -A30 - -ResourceState + + +A31 + +ResourceState - + -A2->A30 - - +A2->A31 + + A3 - -FrontdoorListResult - --value:Array<Frontdoor> --nextLink:string + +FrontDoorListResult + +-value:Array<FrontDoor> +-nextLink:string A3->A0 - - + + A4 - -PurgeParameters - --contentPaths:Array<string> + +PurgeParameters + +-contentPaths:Array<string> A6 - -RoutingRuleProperties - --resourceState:ResourceState + +RoutingRuleProperties + +-resourceState:ResourceState A5->A6 - - + + - + -A6->A30 - - +A6->A31 + + A7 - -RoutingRuleListResult - --value:Array<RoutingRule> --nextLink:string + +RoutingRuleListResult + +-value:Array<RoutingRule> +-nextLink:string A7->A5 - - + + A8 - -RoutingRuleUpdateParameters - --frontendEndpoints:Array<SubResource> --acceptedProtocols:Array<string> --patternsToMatch:Array<string> --customForwardingPath:string --forwardingProtocol:string --cacheConfiguration:CacheConfiguration --backendPool:SubResource --enabledState:string + +RoutingRuleUpdateParameters + +-routeType:string +-frontendEndpoints:Array<SubResource> +-acceptedProtocols:Array<string> +-patternsToMatch:Array<string> +-customForwardingPath:string +-forwardingProtocol:string +-cacheConfiguration:CacheConfiguration +-backendPool:SubResource +-enabledState:string +-redirectConfiguration:RedirectConfiguration - + A8->A6 - - -allOf + + +allOf - - -A22 - -CacheConfiguration - --queryParameterStripDirective:string --dynamicCompression:string + + +A9 + +RedirectConfiguration + +-redirectType:string +-destinationProtocol:string +-destinationHost:string +-destinationPath:string +-destinationFragment:string +-preservePath:string +-preserveQueryString:string +-extraQueryString:string + + + +A8->A9 + + + + + +A23 + +CacheConfiguration + +-queryParameterStripDirective:string +-dynamicCompression:string - + -A8->A22 - - +A8->A23 + + A38 - -SubResource - --id:string + +SubResource A8->A38 - - + + A8->A38 - - - - - -A9 - -Backend - --address:string --httpPort: --httpsPort: --enabledState:string --priority: --weight: --backendHostHeader:string - - - -A11 - -LoadBalancingSettingsProperties - --resourceState:ResourceState - - - -A10->A11 - - + + - - -A11->A30 - - + + +A10 + +Backend + +-address:string +-httpPort: +-httpsPort: +-enabledState:string +-priority: +-weight: +-backendHostHeader:string A12 - -LoadBalancingSettingsListResult - --value:Array<LoadBalancingSettingsModel> --nextLink:string + +LoadBalancingSettingsProperties + +-resourceState:ResourceState - + + +A11->A12 + + + + -A12->A10 - - +A12->A31 + + A13 - -LoadBalancingSettingsUpdateParameters - --sampleSize: --successfulSamplesRequired: --additionalLatencyMilliseconds: + +LoadBalancingSettingsListResult + +-value:Array<LoadBalancingSettingsModel> +-nextLink:string - -A13->A11 - - -allOf - - - -A15 - -HealthProbeSettingsProperties - --resourceState:ResourceState - - -A14->A15 - - +A13->A11 + + - - -A15->A30 - - + + +A14 + +LoadBalancingSettingsUpdateParameters + +-sampleSize: +-successfulSamplesRequired: +-additionalLatencyMilliseconds: + + + +A14->A12 + + +allOf A16 - -HealthProbeSettingsListResult - --value:Array<HealthProbeSettingsModel> --nextLink:string + +HealthProbeSettingsProperties + +-resourceState:ResourceState - + + +A15->A16 + + + + -A16->A14 - - +A16->A31 + + A17 - -HealthProbeSettingsUpdateParameters - --path:string --protocol:string --intervalInSeconds: + +HealthProbeSettingsListResult + +-value:Array<HealthProbeSettingsModel> +-nextLink:string - + A17->A15 - - -allOf + + - - -A20 - -BackendPoolProperties - --resourceState:ResourceState + + +A18 + +HealthProbeSettingsUpdateParameters + +-path:string +-protocol:string +-intervalInSeconds: + + + +A18->A16 + + +allOf - - -A18->A20 - - + + +A21 + +BackendPoolProperties + +-resourceState:ResourceState - - -A19 - -BackendPoolUpdateParameters - --backends:Array<Backend> --loadBalancingSettings:SubResource --healthProbeSettings:SubResource - - + -A19->A9 - - - - - -A19->A20 - - -allOf +A19->A21 + + - + + +A20 + +BackendPoolUpdateParameters + +-backends:Array<Backend> +-loadBalancingSettings:SubResource +-healthProbeSettings:SubResource + + -A19->A38 - - +A20->A10 + + + + + +A20->A21 + + +allOf - + -A19->A38 - - +A20->A38 + + - + -A20->A30 - - +A20->A38 + + - - -A21 - -BackendPoolListResult - --value:Array<BackendPool> --nextLink:string - - + -A21->A18 - - +A21->A31 + + - - -A23 - -KeyVaultCertificateSourceParameters - --vault:Object --secretName:string --secretVersion:string + + +A22 + +BackendPoolListResult + +-value:Array<BackendPool> +-nextLink:string + + + +A22->A19 + + A24 - -FrontdoorCertificateSourceParameters - --certificateType:string + +KeyVaultCertificateSourceParameters + +-vault:Object +-secretName:string +-secretVersion:string A25 - -CustomHttpsConfiguration - --certificateSource:string --protocolType:string --keyVaultCertificateSourceParameters:KeyVaultCertificateSourceParameters --frontdoorCertificateSourceParameters:FrontdoorCertificateSourceParameters - - - -A25->A23 - - + +FrontDoorCertificateSourceParameters + +-certificateType:string - + + +A26 + +CustomHttpsConfiguration + +-certificateSource:string +-protocolType:string +-keyVaultCertificateSourceParameters:KeyVaultCertificateSourceParameters +-frontDoorCertificateSourceParameters:FrontDoorCertificateSourceParameters + + -A25->A24 - - +A26->A24 + + - - -A27 - -FrontendEndpointProperties - --resourceState:ResourceState --customHttpsProvisioningState:string --customHttpsProvisioningSubstate:string --customHttpsConfiguration:CustomHttpsConfiguration - - + -A26->A27 - - - - - -A27->A25 - - - - - -A27->A30 - - +A26->A25 + + A28 - -FrontendEndpointUpdateParameters - --hostName:string --sessionAffinityEnabledState:string --sessionAffinityTtlSeconds: --webApplicationFirewallPolicyLink:Object - - - -A28->A27 - - -allOf + +FrontendEndpointProperties + +-resourceState:ResourceState +-customHttpsProvisioningState:string +-customHttpsProvisioningSubstate:string +-customHttpsConfiguration:CustomHttpsConfiguration + + + +A27->A28 + + + + + +A28->A26 + + + + + +A28->A31 + + A29 - -FrontendEndpointsListResult - --value:Array<FrontendEndpoint> --nextLink:string + +FrontendEndpointUpdateParameters + +-hostName:string +-sessionAffinityEnabledState:string +-sessionAffinityTtlSeconds: +-webApplicationFirewallPolicyLink:Object + + + +A29->A28 + + +allOf - - -A29->A26 - - + + +A30 + +FrontendEndpointsListResult + +-value:Array<FrontendEndpoint> +-nextLink:string - - -A31 - -ValidateCustomDomainInput - --hostName:string + + +A30->A27 + + A32 - -ValidateCustomDomainOutput - --customDomainValidated:boolean --reason:string --message:string + +ValidateCustomDomainInput + +-hostName:string A33 - -ErrorResponse - --code:string --message:string + +ValidateCustomDomainOutput + +-customDomainValidated:boolean +-reason:string +-message:string A34 - -CheckNameAvailabilityInput - --name:string --type:ResourceType - - - -A36 - -ResourceType - - - -A34->A36 - - + +ErrorResponse + +-code:string +-message:string A35 - -CheckNameAvailabilityOutput - --nameAvailability:string --reason:string --message:string + +CheckNameAvailabilityInput + +-name:string +-type:ResourceType A37 - -Resource - --id:string --name:string --type:string --location:string --tags:Dictionary<string> - - + +ResourceType + + -A37->A0 - - -allOf +A35->A37 + + + + + +A36 + +CheckNameAvailabilityOutput + +-nameAvailability:string +-reason:string +-message:string - + A38->A5 - - -allOf + + +allOf - - -A38->A10 - - -allOf + + +A38->A11 + + +allOf - - -A38->A14 - - -allOf + + +A38->A15 + + +allOf - - -A38->A18 - - -allOf + + +A38->A19 + + +allOf - - -A38->A26 - - -allOf + + +A38->A27 + + +allOf + + + +A39 + +Resource + + + +A39->A0 + + +allOf diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRedirectRoutingRuleCreate.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRedirectRoutingRuleCreate.json new file mode 100644 index 000000000000..3c03366f1092 --- /dev/null +++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRedirectRoutingRuleCreate.json @@ -0,0 +1,136 @@ +{ + "parameters": { + "api-version": "2018-08-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "frontDoorName": "frontDoor1", + "routingRuleName": "redirectRoutingRule1", + "routingRuleParameters": { + "name": "redirectRoutingRule1", + "properties": { + "routeType": "Redirect", + "frontendEndpoints": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1" + }, + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default" + } + ], + "acceptedProtocols": [ + "Https" + ], + "patternsToMatch": [ + "/*" + ], + "redirectConfiguration": { + "redirectType": "Moved", + "destinationProtocol": "Https", + "destinationHost": "www.bing.com", + "destinationPath": "/api", + "preservePath": "No", + "preserveQueryString": "Yes" + }, + "enabledState": "Enabled" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/redirectRoutingRule1", + "name": "redirectRoutingRule1", + "properties": { + "routeType": "Redirect", + "frontendEndpoints": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1" + }, + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default" + } + ], + "acceptedProtocols": [ + "Https" + ], + "patternsToMatch": [ + "/*" + ], + "redirectConfiguration": { + "redirectType": "Moved", + "destinationProtocol": "Https", + "destinationHost": "www.bing.com", + "destinationPath": "/api", + "preservePath": "No", + "preserveQueryString": "Yes" + }, + "enabledState": "Enabled" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/redirectRoutingRule1", + "name": "redirectRoutingRule1", + "properties": { + "routeType": "Redirect", + "frontendEndpoints": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1" + }, + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default" + } + ], + "acceptedProtocols": [ + "Https" + ], + "patternsToMatch": [ + "/*" + ], + "redirectConfiguration": { + "redirectType": "Moved", + "destinationProtocol": "Https", + "destinationHost": "www.bing.com", + "destinationPath": "/api", + "preservePath": "No", + "preserveQueryString": "Yes" + }, + "enabledState": "Enabled" + } + } + }, + "202": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/redirectRoutingRule1", + "name": "redirectRoutingRule1", + "properties": { + "routeType": "Redirect", + "frontendEndpoints": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1" + }, + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default" + } + ], + "acceptedProtocols": [ + "Https" + ], + "patternsToMatch": [ + "/*" + ], + "redirectConfiguration": { + "redirectType": "Moved", + "destinationProtocol": "Https", + "destinationHost": "www.bing.com", + "destinationPath": "/api", + "preservePath": "No", + "preserveQueryString": "Yes" + }, + "enabledState": "Enabled" + } + } + } + } +} \ No newline at end of file diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRedirectRoutingRuleGet.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRedirectRoutingRuleGet.json new file mode 100644 index 000000000000..288776cd5155 --- /dev/null +++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRedirectRoutingRuleGet.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2018-08-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "frontDoorName": "frontDoor1", + "routingRuleName": "redirectRoutingRule1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/redirectRoutingRule1", + "name": "redirectRoutingRule1", + "properties": { + "routeType": "Redirect", + "frontendEndpoints": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1" + }, + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default" + } + ], + "acceptedProtocols": [ + "Https" + ], + "patternsToMatch": [ + "/*" + ], + "redirectConfiguration": { + "redirectType": "Moved", + "destinationProtocol": "Https", + "destinationHost": "www.bing.com", + "destinationPath": "/api", + "preservePath": "No", + "preserveQueryString": "Yes" + }, + "enabledState": "Enabled" + } + } + } + } +} \ No newline at end of file diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleList.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleList.json index fc965eae8562..5ba00ff16998 100644 --- a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleList.json +++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/examples/FrontdoorRoutingRuleList.json @@ -34,6 +34,36 @@ }, "enabledState": "Enabled" } + }, + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/redirectRoutingRule1", + "name": "redirectRoutingRule1", + "properties": { + "routeType": "Redirect", + "frontendEndpoints": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/frontendEndpoint1" + }, + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/frontDoors/frontDoor1/frontendEndpoints/default" + } + ], + "acceptedProtocols": [ + "Https" + ], + "patternsToMatch": [ + "/*" + ], + "redirectConfiguration": { + "redirectType": "Moved", + "destinationProtocol": "Https", + "destinationHost": "www.bing.com", + "destinationPath": "/api", + "preservePath": "No", + "preserveQueryString": "Yes" + }, + "enabledState": "Enabled" + } } ] } diff --git a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/frontdoor.json b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/frontdoor.json index 35eb5a6fa79a..430492ae7f03 100644 --- a/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/frontdoor.json +++ b/specification/frontdoor/resource-manager/Microsoft.Network/preview/2018-08-01-preview/frontdoor.json @@ -431,8 +431,11 @@ } }, "x-ms-examples": { - "Get Routing Rule": { + "Get Forward Routing Rule": { "$ref": "./examples/FrontdoorRoutingRuleGet.json" + }, + "Get Redirect Routing Rule": { + "$ref": "./examples/FrontdoorRedirectRoutingRuleGet.json" } } }, @@ -495,8 +498,11 @@ } }, "x-ms-examples": { - "Create or update specific Routing Rule": { + "Create or update specific Forward Routing Rule": { "$ref": "./examples/FrontdoorRoutingRuleCreate.json" + }, + "Create or update specific Rediret Routing Rule": { + "$ref": "./examples/FrontdoorRedirectRoutingRuleCreate.json" } }, "x-ms-long-running-operation": true @@ -1740,6 +1746,18 @@ "description": "Routing rules to apply to an endpoint", "type": "object", "properties": { + "routeType": { + "type": "string", + "enum": [ + "Forwarding", + "Redirect" + ], + "x-ms-enum": { + "name": "FrontDoorRouteType", + "modelAsString": true + }, + "description": "The type of a routing rule. It must be set to Redirect for a redirect routing rule. To be backwards-compatible, it is not needed for a forwarding routing rule." + }, "frontendEndpoints": { "description": "Frontend endpoints associated with this rule", "type": "array", @@ -1808,6 +1826,83 @@ "name": "FrontDoorEnabledState", "modelAsString": true } + }, + "redirectConfiguration": { + "description": "A reference to the redirect routing configuration. It is null for a forward-routing rule. But it must not be null if the routeType property is set to Redirect.", + "$ref": "#/definitions/RedirectConfiguration" + } + } + }, + "RedirectConfiguration": { + "description": "The configuration for a redirect routing rule. This object is needed only if the type property of RoutingRule is set to Redirect. ", + "type": "object", + "properties": { + "redirectType": { + "description": "The redirect type the rule will use when redirecting traffic.", + "type": "string", + "enum": [ + "Moved", + "Found", + "TemporaryRedirect", + "PermanentRedirect" + ], + "x-ms-enum": { + "name": "FrontDoorRedirectProtocol", + "modelAsString": true + } + }, + "destinationProtocol": { + "description": "The protocol of the destination where the traffic is forwarded to", + "type": "string", + "enum": [ + "MatchRequest", + "Http", + "Https" + ], + "x-ms-enum": { + "name": "FrontDoorDestinationProtocol", + "modelAsString": true + } + }, + "destinationHost": { + "type": "string", + "description": "If left blank, then we will use the incoming host as the destination host." + }, + "destinationPath": { + "type": "string", + "description": "Path cannot be empty and must start with /." + }, + "destinationFragment": { + "type": "string", + "description": "Fragment is the part of the URL that comes after #. Do not include the #." + }, + "preservePath": { + "description": "Indicates whether the path is preserved.", + "type": "string", + "enum": [ + "Yes", + "No" + ], + "x-ms-enum": { + "name": "FrontDoorPreservePath", + "modelAsString": true + } + }, + "preserveQueryString": { + "description": "Indicates whether the query string is preserved.", + "type": "string", + "enum": [ + "Yes", + "No" + ], + "x-ms-enum": { + "name": "FrontDoorPreserveQueryString", + "modelAsString": true + } + }, + "extraQueryString": { + "description": "Any string to be added to the query string in the destination URL. ? and & will be added automatically so do not include them.", + "type": "string" } } },