---
# ----------------------------------------------------------------------------
#
#     ***     AUTO GENERATED CODE    ***    Type: MMv1     ***
#
# ----------------------------------------------------------------------------
#
#     This file is automatically generated by Magic Modules and manual
#     changes will be clobbered when the file is regenerated.
#
#     Please read more about how to change this file at
#     https://www.github.com/GoogleCloudPlatform/magic-modules
#
# ----------------------------------------------------------------------------
# Pre-test setup
- name: Create a instance group
  google.cloud.gcp_compute_instance_group:
    name: instancegroup-targetsslproxy
    zone: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: present
  register: instancegroup
- name: Create a health check
  google.cloud.gcp_compute_health_check:
    name: healthcheck-targetsslproxy
    type: TCP
    tcp_health_check:
      port_name: service-health
      request: ping
      response: pong
    healthy_threshold: 10
    timeout_sec: 2
    unhealthy_threshold: 5
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: present
  register: healthcheck
- name: Create a backend service
  google.cloud.gcp_compute_backend_service:
    name: backendservice-targetsslproxy
    backends:
      - group: "{{ instancegroup.selfLink }}"
    health_checks:
      - "{{ healthcheck.selfLink }}"
    protocol: SSL
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: present
  register: backendservice
- name: Create a SSL certificate
  google.cloud.gcp_compute_ssl_certificate:
    name: sslcert-targetsslproxy
    description: A certificate for testing. Do not use this certificate in production
    certificate: |-
      -----BEGIN CERTIFICATE-----
      MIICqjCCAk+gAwIBAgIJAIuJ+0352Kq4MAoGCCqGSM49BAMCMIGwMQswCQYDVQQG
      EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjERMA8GA1UEBwwIS2lya2xhbmQxFTAT
      BgNVBAoMDEdvb2dsZSwgSW5jLjEeMBwGA1UECwwVR29vZ2xlIENsb3VkIFBsYXRm
      b3JtMR8wHQYDVQQDDBZ3d3cubXktc2VjdXJlLXNpdGUuY29tMSEwHwYJKoZIhvcN
      AQkBFhJuZWxzb25hQGdvb2dsZS5jb20wHhcNMTcwNjI4MDQ1NjI2WhcNMjcwNjI2
      MDQ1NjI2WjCBsDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xETAP
      BgNVBAcMCEtpcmtsYW5kMRUwEwYDVQQKDAxHb29nbGUsIEluYy4xHjAcBgNVBAsM
      FUdvb2dsZSBDbG91ZCBQbGF0Zm9ybTEfMB0GA1UEAwwWd3d3Lm15LXNlY3VyZS1z
      aXRlLmNvbTEhMB8GCSqGSIb3DQEJARYSbmVsc29uYUBnb29nbGUuY29tMFkwEwYH
      KoZIzj0CAQYIKoZIzj0DAQcDQgAEHGzpcRJ4XzfBJCCPMQeXQpTXwlblimODQCuQ
      4mzkzTv0dXyB750fOGN02HtkpBOZzzvUARTR10JQoSe2/5PIwaNQME4wHQYDVR0O
      BBYEFKIQC3A2SDpxcdfn0YLKineDNq/BMB8GA1UdIwQYMBaAFKIQC3A2SDpxcdfn
      0YLKineDNq/BMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhALs4vy+O
      M3jcqgA4fSW/oKw6UJxp+M6a+nGMX+UJR3YgAiEAvvl39QRVAiv84hdoCuyON0lJ
      zqGNhIPGq2ULqXKK8BY=
      -----END CERTIFICATE-----
    private_key: |-
      -----BEGIN EC PRIVATE KEY-----
      MHcCAQEEIObtRo8tkUqoMjeHhsOh2ouPpXCgBcP+EDxZCB/tws15oAoGCCqGSM49
      AwEHoUQDQgAEHGzpcRJ4XzfBJCCPMQeXQpTXwlblimODQCuQ4mzkzTv0dXyB750f
      OGN02HtkpBOZzzvUARTR10JQoSe2/5PIwQ==
      -----END EC PRIVATE KEY-----
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: present
  register: sslcert
- name: Delete a target SSL proxy
  google.cloud.gcp_compute_target_ssl_proxy:
    name: "{{ resource_name }}"
    ssl_certificates:
      - "{{ sslcert }}"
    service: "{{ backendservice }}"
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: absent
#----------------------------------------------------------
- name: Create a target SSL proxy
  google.cloud.gcp_compute_target_ssl_proxy:
    name: "{{ resource_name }}"
    ssl_certificates:
      - "{{ sslcert }}"
    service: "{{ backendservice }}"
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: present
  register: result
- name: Assert changed is true
  ansible.builtin.assert:
    that:
      - result.changed == true
- name: Verify that target_ssl_proxy was created
  google.cloud.gcp_compute_target_ssl_proxy_info:
    filters:
      - name = {{ resource_name }}
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    scopes:
      - https://www.googleapis.com/auth/compute
  register: results
- name: Verify that command succeeded
  ansible.builtin.assert:
    that:
      - results['resources'] | length == 1
# ----------------------------------------------------------------------------
- name: Create a target SSL proxy that already exists
  google.cloud.gcp_compute_target_ssl_proxy:
    name: "{{ resource_name }}"
    ssl_certificates:
      - "{{ sslcert }}"
    service: "{{ backendservice }}"
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: present
  register: result
- name: Assert changed is false
  ansible.builtin.assert:
    that:
      - result.changed == false
#----------------------------------------------------------
- name: Delete a target SSL proxy
  google.cloud.gcp_compute_target_ssl_proxy:
    name: "{{ resource_name }}"
    ssl_certificates:
      - "{{ sslcert }}"
    service: "{{ backendservice }}"
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: absent
  register: result
- name: Assert changed is true
  ansible.builtin.assert:
    that:
      - result.changed == true
- name: Verify that target_ssl_proxy was deleted
  google.cloud.gcp_compute_target_ssl_proxy_info:
    filters:
      - name = {{ resource_name }}
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    scopes:
      - https://www.googleapis.com/auth/compute
  register: results
- name: Verify that command succeeded
  ansible.builtin.assert:
    that:
      - results['resources'] | length == 0
# ----------------------------------------------------------------------------
- name: Delete a target SSL proxy that does not exist
  google.cloud.gcp_compute_target_ssl_proxy:
    name: "{{ resource_name }}"
    ssl_certificates:
      - "{{ sslcert }}"
    service: "{{ backendservice }}"
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: absent
  register: result
- name: Assert changed is false
  ansible.builtin.assert:
    that:
      - result.changed == false
#---------------------------------------------------------
# Post-test teardown
# If errors happen, don't crash the playbook!
- name: Delete a SSL certificate
  google.cloud.gcp_compute_ssl_certificate:
    name: sslcert-targetsslproxy
    description: A certificate for testing. Do not use this certificate in production
    certificate: |-
      -----BEGIN CERTIFICATE-----
      MIICqjCCAk+gAwIBAgIJAIuJ+0352Kq4MAoGCCqGSM49BAMCMIGwMQswCQYDVQQG
      EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjERMA8GA1UEBwwIS2lya2xhbmQxFTAT
      BgNVBAoMDEdvb2dsZSwgSW5jLjEeMBwGA1UECwwVR29vZ2xlIENsb3VkIFBsYXRm
      b3JtMR8wHQYDVQQDDBZ3d3cubXktc2VjdXJlLXNpdGUuY29tMSEwHwYJKoZIhvcN
      AQkBFhJuZWxzb25hQGdvb2dsZS5jb20wHhcNMTcwNjI4MDQ1NjI2WhcNMjcwNjI2
      MDQ1NjI2WjCBsDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xETAP
      BgNVBAcMCEtpcmtsYW5kMRUwEwYDVQQKDAxHb29nbGUsIEluYy4xHjAcBgNVBAsM
      FUdvb2dsZSBDbG91ZCBQbGF0Zm9ybTEfMB0GA1UEAwwWd3d3Lm15LXNlY3VyZS1z
      aXRlLmNvbTEhMB8GCSqGSIb3DQEJARYSbmVsc29uYUBnb29nbGUuY29tMFkwEwYH
      KoZIzj0CAQYIKoZIzj0DAQcDQgAEHGzpcRJ4XzfBJCCPMQeXQpTXwlblimODQCuQ
      4mzkzTv0dXyB750fOGN02HtkpBOZzzvUARTR10JQoSe2/5PIwaNQME4wHQYDVR0O
      BBYEFKIQC3A2SDpxcdfn0YLKineDNq/BMB8GA1UdIwQYMBaAFKIQC3A2SDpxcdfn
      0YLKineDNq/BMAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhALs4vy+O
      M3jcqgA4fSW/oKw6UJxp+M6a+nGMX+UJR3YgAiEAvvl39QRVAiv84hdoCuyON0lJ
      zqGNhIPGq2ULqXKK8BY=
      -----END CERTIFICATE-----
    private_key: |-
      -----BEGIN EC PRIVATE KEY-----
      MHcCAQEEIObtRo8tkUqoMjeHhsOh2ouPpXCgBcP+EDxZCB/tws15oAoGCCqGSM49
      AwEHoUQDQgAEHGzpcRJ4XzfBJCCPMQeXQpTXwlblimODQCuQ4mzkzTv0dXyB750f
      OGN02HtkpBOZzzvUARTR10JQoSe2/5PIwQ==
      -----END EC PRIVATE KEY-----
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: absent
  register: sslcert
  ignore_errors: true
- name: Delete a backend service
  google.cloud.gcp_compute_backend_service:
    name: backendservice-targetsslproxy
    backends:
      - group: "{{ instancegroup.selfLink }}"
    health_checks:
      - "{{ healthcheck.selfLink }}"
    protocol: SSL
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: absent
  register: backendservice
  ignore_errors: true
- name: Delete a health check
  google.cloud.gcp_compute_health_check:
    name: healthcheck-targetsslproxy
    type: TCP
    tcp_health_check:
      port_name: service-health
      request: ping
      response: pong
    healthy_threshold: 10
    timeout_sec: 2
    unhealthy_threshold: 5
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: absent
  register: healthcheck
  ignore_errors: true
- name: Delete a instance group
  google.cloud.gcp_compute_instance_group:
    name: instancegroup-targetsslproxy
    zone: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file | default(omit) }}"
    state: absent
  register: instancegroup
  ignore_errors: true
