def delete(self):
        stub = trigger_pb2_grpc.EventarcTriggerServiceStub(channel.Channel())
        request = trigger_pb2.DeleteEventarcTriggerRequest()
        request.service_account_file = self.service_account_file
        if Primitive.to_proto(self.name):
            request.resource.name = Primitive.to_proto(self.name)

        if TriggerMatchingCriteriaArray.to_proto(self.matching_criteria):
            request.resource.matching_criteria.extend(
                TriggerMatchingCriteriaArray.to_proto(self.matching_criteria))
        if Primitive.to_proto(self.service_account):
            request.resource.service_account = Primitive.to_proto(
                self.service_account)

        if TriggerDestination.to_proto(self.destination):
            request.resource.destination.CopyFrom(
                TriggerDestination.to_proto(self.destination))
        else:
            request.resource.ClearField("destination")
        if TriggerTransport.to_proto(self.transport):
            request.resource.transport.CopyFrom(
                TriggerTransport.to_proto(self.transport))
        else:
            request.resource.ClearField("transport")
        if Primitive.to_proto(self.labels):
            request.resource.labels = Primitive.to_proto(self.labels)

        if Primitive.to_proto(self.project):
            request.resource.project = Primitive.to_proto(self.project)

        if Primitive.to_proto(self.location):
            request.resource.location = Primitive.to_proto(self.location)

        response = stub.DeleteEventarcTrigger(request)
    def list(self, project, location, service_account_file=""):
        stub = trigger_pb2_grpc.EventarcTriggerServiceStub(channel.Channel())
        request = trigger_pb2.ListEventarcTriggerRequest()
        request.service_account_file = service_account_file
        request.Project = project

        request.Location = location

        return stub.ListEventarcTrigger(request).items
    def apply(self):
        stub = trigger_pb2_grpc.EventarcTriggerServiceStub(channel.Channel())
        request = trigger_pb2.ApplyEventarcTriggerRequest()
        if Primitive.to_proto(self.name):
            request.resource.name = Primitive.to_proto(self.name)

        if TriggerMatchingCriteriaArray.to_proto(self.matching_criteria):
            request.resource.matching_criteria.extend(
                TriggerMatchingCriteriaArray.to_proto(self.matching_criteria))
        if Primitive.to_proto(self.service_account):
            request.resource.service_account = Primitive.to_proto(
                self.service_account)

        if TriggerDestination.to_proto(self.destination):
            request.resource.destination.CopyFrom(
                TriggerDestination.to_proto(self.destination))
        else:
            request.resource.ClearField("destination")
        if TriggerTransport.to_proto(self.transport):
            request.resource.transport.CopyFrom(
                TriggerTransport.to_proto(self.transport))
        else:
            request.resource.ClearField("transport")
        if Primitive.to_proto(self.labels):
            request.resource.labels = Primitive.to_proto(self.labels)

        if Primitive.to_proto(self.project):
            request.resource.project = Primitive.to_proto(self.project)

        if Primitive.to_proto(self.location):
            request.resource.location = Primitive.to_proto(self.location)

        request.service_account_file = self.service_account_file

        response = stub.ApplyEventarcTrigger(request)
        self.name = Primitive.from_proto(response.name)
        self.uid = Primitive.from_proto(response.uid)
        self.create_time = Primitive.from_proto(response.create_time)
        self.update_time = Primitive.from_proto(response.update_time)
        self.matching_criteria = TriggerMatchingCriteriaArray.from_proto(
            response.matching_criteria)
        self.service_account = Primitive.from_proto(response.service_account)
        self.destination = TriggerDestination.from_proto(response.destination)
        self.transport = TriggerTransport.from_proto(response.transport)
        self.labels = Primitive.from_proto(response.labels)
        self.etag = Primitive.from_proto(response.etag)
        self.project = Primitive.from_proto(response.project)
        self.location = Primitive.from_proto(response.location)