protected override void ProcessRecord()
        {
            base.ProcessRecord();

            if (!ShouldProcess($"{Project}/{Zone}", "Delete ManagedZone"))
            {
                return;
            }

            ResourceRecordSetsResource.ListRequest rrsetListRequest =
                Service.ResourceRecordSets.List(Project, Zone);
            ResourceRecordSetsListResponse rrsetListResponse = rrsetListRequest.Execute();
            IList <ResourceRecordSet>      rrsetList         = rrsetListResponse.Rrsets;

            IList <ResourceRecordSet> nonDefaultRrsets = new List <ResourceRecordSet>();

            foreach (ResourceRecordSet rrset in rrsetList)
            {
                if (!rrset.Type.Equals("NS") && !rrset.Type.Equals("SOA"))
                {
                    nonDefaultRrsets.Add(rrset);
                }
            }

            if (nonDefaultRrsets.Count > 0)
            {
                if (!Force &&
                    !ShouldContinue($"{Project}/{Zone}", "Delete Non-Empty ManagedZone (with non-NS/SOA records)"))
                {
                    return;
                }

                Change changeContent = new Change
                {
                    Deletions = nonDefaultRrsets
                };

                ChangesResource.CreateRequest changeCreateRequest =
                    Service.Changes.Create(changeContent, Project, Zone);
                changeCreateRequest.Execute();
            }

            ManagedZonesResource.DeleteRequest zoneDeleteRequest = Service.ManagedZones.Delete(Project, Zone);
            zoneDeleteRequest.Execute();
        }
Пример #2
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            Change changeContent;

            switch (ParameterSetName)
            {
            case ParameterSetNames.AddRm:
                if ((Add == null || Add.Length == 0) && (Remove == null || Remove.Length == 0))
                {
                    throw new System.ArgumentException(LocalErrorMessages.NeedChangeContent);
                }
                else
                {
                    changeContent = new Change
                    {
                        Additions = Add,
                        Deletions = Remove
                    };
                }
                break;

            case ParameterSetNames.ChangeRequest:
                changeContent = ChangeRequest;
                break;

            default:
                throw UnknownParameterSetException;
            }

            ChangesResource.CreateRequest changeCreateRequest =
                Service.Changes.Create(changeContent, Project, Zone);
            Change changeResponse = changeCreateRequest.Execute();

            WriteObject(changeResponse);
        }