# Copyright 2025 Google LLC
#
# 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.

apiVersion: blueprints.cloud.google.com/v1alpha1
kind: BlueprintMetadata
metadata:
  name: terraform-google-regional-lb-http-frontend-display
  annotations:
    config.kubernetes.io/local-config: "true"
spec:
  info:
    title: HTTP Regional Load balancer frontend module
    source:
      repo: https://github.com/googlestaging/terraform-google-regional-lb-http.git
      sourceType: git
      dir: /modules/frontend
  ui:
    input:
      variables:
        address:
          name: address
          title: Address
        certificate:
          name: certificate
          title: Certificate
        create_address:
          name: create_address
          title: Create Address
        create_ipv6_address:
          name: create_ipv6_address
          title: Create Ipv6 Address
        create_proxy_only_subnet:
          name: create_proxy_only_subnet
          title: Create Proxy Only Subnet
          level: 1
        create_ssl_certificate:
          name: create_ssl_certificate
          title: Create Ssl Certificate
        create_url_map:
          name: create_url_map
          title: Create Url Map
        enable_ipv6:
          name: enable_ipv6
          title: Enable Ipv6
        http_forward:
          name: http_forward
          title: Http Forward
        http_keep_alive_timeout_sec:
          name: http_keep_alive_timeout_sec
          title: Http Keep Alive Timeout Sec
        http_port:
          name: http_port
          title: Http Port
        https_port:
          name: https_port
          title: Https Port
        https_redirect:
          name: https_redirect
          title: Https Redirect
        ipv6_address:
          name: ipv6_address
          title: Ipv6 Address
        labels:
          name: labels
          title: Labels
        load_balancing_scheme:
          name: load_balancing_scheme
          title: Load Balancing Scheme
          enumValueLabels:
            - label: EXTERNAL_MANAGED
              value: EXTERNAL_MANAGED
            - label: INTERNAL_MANAGED
              value: INTERNAL_MANAGED
          level: 1
        managed_ssl_certificate_domains:
          name: managed_ssl_certificate_domains
          title: Managed Ssl Certificate Domains
        name:
          name: name
          title: Name
          regexValidation: ^[a-z][a-z0-9-]{0,34}[a-z0-9]$
          validation: Use lowercase letters, numbers, and hyphens. Start with a letter and end with letter/number. Must be 36 characters or fewer.
        network:
          name: network
          title: Network
        private_key:
          name: private_key
          title: Private Key
        project_id:
          name: project_id
          title: Project Id
        proxy_only_subnet_ip:
          name: proxy_only_subnet_ip
          title: Proxy Only Subnet Ip
          level: 1
        random_certificate_suffix:
          name: random_certificate_suffix
          title: Random Certificate Suffix
        region:
          name: region
          title: Region
        server_tls_policy:
          name: server_tls_policy
          title: Server Tls Policy
        ssl:
          name: ssl
          title: Ssl
        ssl_certificates:
          name: ssl_certificates
          title: Ssl Certificates
        ssl_policy:
          name: ssl_policy
          title: Ssl Policy
        subnetwork:
          name: subnetwork
          title: Subnetwork
          level: 1
        url_map_input:
          name: url_map_input
          title: Url Map Input
        url_map_resource_uri:
          name: url_map_resource_uri
          title: Url Map Resource Uri
    runtime:
      outputs:
        external_ip:
          visibility: VISIBILITY_ROOT
        ip_address_http:
          visibility: VISIBILITY_ROOT
        ip_address_https:
          visibility: VISIBILITY_ROOT
