code: def from_api_repr(cls, resource):
          
          name = resource.get("name")
          instance = cls(name)
          type_resources = {}
          types = instance.struct_types
          for item in resource["parameterType"]["structTypes"]:
              types[item["name"]] = item["type"]["type"]
              type_resources[item["name"]] = item["type"]
          struct_values = resource["parameterValue"]["structValues"]
          for key, value in struct_values.items():
              type_ = types[key]
              converted = None
              if type_ == "STRUCT":
                  struct_resource = {
                      "name": key,
                      "parameterType": type_resources[key],
                      "parameterValue": value,
                  }
                  converted = StructQueryParameter.from_api_repr(struct_resource)
              elif type_ == "ARRAY":
                  struct_resource = {
                      "name": key,
                      "parameterType": type_resources[key],
                      "parameterValue": value,
                  }
                  converted = ArrayQueryParameter.from_api_repr(struct_resource)
              else:
                  value = value["value"]
                  converted = _QUERY_PARAMS_FROM_JSON[type_](value, None)
              instance.struct_values[key] = converted
          return instance
docs: Factory: construct parameter from JSON resource.
  
          :type resource: dict
          :param resource: JSON mapping of parameter
  
          :rtype: :class:`~google.cloud.bigquery.query.StructQueryParameter`
          :returns: instance